package cn.itcast.service;

import cn.itcast.entity.PageResult;
import cn.itcast.entity.QueryPageBean;
import cn.itcast.pojo.Role;

import java.util.List;

public interface RoleService {

    /**
     * 查询角色管理列表
     * @param queryPageBean 查询条件
     * @return
     */
    PageResult findPage(QueryPageBean queryPageBean);


    /**
     * 新增角色
     * @param permissionIds 权限id集合
     * @param menuIds 菜单id集合
     * @param role 角色基本信息
     * @return
     */
    Boolean handleAdd(int[] permissionIds, int[] menuIds, Role role);


    /**
     *通过id查询角色信息
     * @param id 角色id
     * @return
     */
    Role findById(Integer id);


    /**
     *通过角色id查询角色菜单id集合
     * @param id 角色id
     * @return
     */
    List<Integer> findMenuById(Integer id);


    /**
     *通过角色id查询角色权限id集合
     * @param id 角色id
     * @return
     */
    List<Integer> findPermissionById(Integer id);


    /**
     * 编辑角色
     * @param permissionIds 权限id集合
     * @param menuIds 菜单id集合
     * @param role 角色基本信息
     * @return
     */
    Boolean handleEdit(int[] permissionIds, int[] menuIds, Role role);


    /**
     * 根据id删除角色
     * @param id  角色id
     * @return
     */
    Boolean handleDelete(Integer id);



    /**
     * 查询所有角色
     * @return
     */
    List<Role> findAllRole();
}
